python3.9.git
3 months agobpo-36384: Leading zeros in IPv4 addresses are no longer tolerated (GH-25099) (GH...
Miss Islington (bot) [Sun, 2 May 2021 13:49:03 +0000 (06:49 -0700)]
bpo-36384: Leading zeros in IPv4 addresses are no longer tolerated (GH-25099) (GH-25815)

Reverts commit e653d4d8e820a7a004ad399530af0135b45db27a and makes
parsing even more strict. Like socket.inet_pton() any leading zero
is now treated as invalid input.

Signed-off-by: Christian Heimes <christian@python.org>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
(cherry picked from commit 60ce8f0be6354ad565393ab449d8de5d713f35bc)

Gbp-Pq: Name 0009-bpo-36384-Leading-zeros-in-IPv4-addresses-are-no-lon.patch

3 months agogh-87389: Fix an open redirection vulnerability in http.server. (GH-93879) (GH-94093)
Miss Islington (bot) [Wed, 22 Jun 2022 08:42:02 +0000 (01:42 -0700)]
gh-87389: Fix an open redirection vulnerability in http.server. (GH-93879) (GH-94093)

Fix an open redirection vulnerability in the `http.server` module when
an URI path starts with `//` that could produce a 301 Location header
with a misleading target.  Vulnerability discovered, and logic fix
proposed, by Hamza Avvan (@hamzaavvan).

Test and comments authored by Gregory P. Smith [Google].
(cherry picked from commit 4abab6b603dd38bec1168e9a37c40a48ec89508e)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Gbp-Pq: Name 0008-gh-87389-Fix-an-open-redirection-vulnerability-in-ht.patch

3 months agobpo-43285 Make ftplib not trust the PASV response. (GH-24838)
Miss Islington (bot) [Mon, 15 Mar 2021 19:02:45 +0000 (12:02 -0700)]
bpo-43285 Make ftplib not trust the PASV response. (GH-24838)

bpo-43285: Make ftplib not trust the PASV response.

The IPv4 address value returned from the server in response to the PASV command
should not be trusted.  This prevents a malicious FTP server from using the
response to probe IPv4 address and port combinations on the client network.

Instead of using the returned address, we use the IP address we're
already connected to.  This is the strategy other ftp clients adopted,
and matches the only strategy available for the modern IPv6 EPSV command
where the server response must return a port number and nothing else.

For the rare user who _wants_ this ugly behavior, set a `trust_server_pasv_ipv4_address`
attribute on your `ftplib.FTP` instance to True.
(cherry picked from commit 0ab152c6b5d95caa2dc1a30fa96e10258b5f188e)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Gbp-Pq: Name 0007-bpo-43285-Make-ftplib-not-trust-the-PASV-response.-G.patch

3 months agobpo-44022: Improve the regression test. (GH-26503)
Miss Islington (bot) [Thu, 3 Jun 2021 04:10:22 +0000 (21:10 -0700)]
bpo-44022: Improve the regression test. (GH-26503)

It wasn't actually detecting the regression due to the
assertion being too lenient.
(cherry picked from commit e60ab843cbb016fb6ff8b4f418641ac05a9b2fcc)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Gbp-Pq: Name 0006-bpo-44022-Improve-the-regression-test.-GH-26503.patch

3 months agobpo-44022: Fix http client infinite line reading (DoS) after a HTTP 100 Continue...
Miss Islington (bot) [Wed, 5 May 2021 23:05:52 +0000 (16:05 -0700)]
bpo-44022: Fix http client infinite line reading (DoS) after a HTTP 100 Continue (GH-25916)

Fixes http.client potential denial of service where it could get stuck reading lines from a malicious server after a 100 Continue response.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
(cherry picked from commit 47895e31b6f626bc6ce47d175fe9d43c1098909d)

Co-authored-by: Gen Xu <xgbarry@gmail.com>
Gbp-Pq: Name 0005-bpo-44022-Fix-http-client-infinite-line-reading-DoS-.patch

3 months agobpo-43075: Fix ReDoS in urllib AbstractBasicAuthHandler (GH-24391) (GH-25247)
Miss Islington (bot) [Wed, 7 Apr 2021 15:58:04 +0000 (08:58 -0700)]
bpo-43075: Fix ReDoS in urllib AbstractBasicAuthHandler (GH-24391) (GH-25247)

Fix Regular Expression Denial of Service (ReDoS) vulnerability in
urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex
has quadratic worst-case complexity and it allows cause a denial of
service when identifying crafted invalid RFCs. This ReDoS issue is on
the client side and needs remote attackers to control the HTTP server.
(cherry picked from commit 7215d1ae25525c92b026166f9d5cac85fb1defe1)

Co-authored-by: Yeting Li <liyt@ios.ac.cn>
Co-authored-by: Yeting Li <liyt@ios.ac.cn>
Gbp-Pq: Name 0004-bpo-43075-Fix-ReDoS-in-urllib-AbstractBasicAuthHandl.patch

3 months agobpo-42988: Remove the pydoc getfile feature (GH-25015)
Miss Islington (bot) [Mon, 29 Mar 2021 13:08:00 +0000 (06:08 -0700)]
bpo-42988: Remove the pydoc getfile feature (GH-25015)

CVE-2021-3426: Remove the "getfile" feature of the pydoc module which
could be abused to read arbitrary files on the disk (directory
traversal vulnerability). Moreover, even source code of Python
modules can contain sensitive data like passwords. Vulnerability
reported by David Schwörer.
(cherry picked from commit 9b999479c0022edfc9835a8a1f06e046f3881048)

Co-authored-by: Victor Stinner <vstinner@python.org>
Gbp-Pq: Name 0003-bpo-42988-Remove-the-pydoc-getfile-feature-GH-25015.patch

3 months ago[3.9] gh-95778: CVE-2020-10735: Prevent DoS by very large int() (#96502)
Gregory P. Smith [Mon, 5 Sep 2022 09:21:03 +0000 (02:21 -0700)]
[3.9] gh-95778: CVE-2020-10735: Prevent DoS by very large int() (#96502)

* Correctly pre-check for int-to-str conversion (#96537)

Converting a large enough `int` to a decimal string raises `ValueError` as expected. However, the raise comes _after_ the quadratic-time base-conversion algorithm has run to completion. For effective DOS prevention, we need some kind of check before entering the quadratic-time loop. Oops! =)

The quick fix: essentially we catch _most_ values that exceed the threshold up front. Those that slip through will still be on the small side (read: sufficiently fast), and will get caught by the existing check so that the limit remains exact.

The justification for the current check. The C code check is:
```c
max_str_digits / (3 * PyLong_SHIFT) <= (size_a - 11) / 10
```

In GitHub markdown math-speak, writing $M$ for `max_str_digits`, $L$ for `PyLong_SHIFT` and $s$ for `size_a`, that check is:
$$\left\lfloor\frac{M}{3L}\right\rfloor \le \left\lfloor\frac{s - 11}{10}\right\rfloor$$

From this it follows that
$$\frac{M}{3L} < \frac{s-1}{10}$$
hence that
$$\frac{L(s-1)}{M} > \frac{10}{3} > \log_2(10).$$
So
$$2^{L(s-1)} > 10^M.$$
But our input integer $a$ satisfies $|a| \ge 2^{L(s-1)}$, so $|a|$ is larger than $10^M$. This shows that we don't accidentally capture anything _below_ the intended limit in the check.

<!-- gh-issue-number: gh-95778 -->
* Issue: gh-95778
<!-- /gh-issue-number -->

Co-authored-by: Gregory P. Smith [Google LLC] <greg@krypto.org>
Co-authored-by: Christian Heimes <christian@python.org>
Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
Gbp-Pq: Name 0002-3.9-gh-95778-CVE-2020-10735-Prevent-DoS-by-very-larg.patch

3 months ago[3.9] gh-68966: Make mailcap refuse to match unsafe filenames/types/params (GH-91993...
Miss Islington (bot) [Tue, 11 Oct 2022 21:13:18 +0000 (14:13 -0700)]
[3.9] gh-68966: Make mailcap refuse to match unsafe filenames/types/params (GH-91993) (#98190)

gh-68966: Make mailcap refuse to match unsafe filenames/types/params (GH-91993)
(cherry picked from commit b9509ba7a9c668b984dab876c7926fe1dc5aa0ba)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Gbp-Pq: Name 0001-3.9-gh-68966-Make-mailcap-refuse-to-match-unsafe-fil.patch

3 months agompdecimal-2.5.1
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
mpdecimal-2.5.1

Gbp-Pq: Name mpdecimal-2.5.1.diff

3 months agosphinx3
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
sphinx3

Gbp-Pq: Name sphinx3.diff

3 months agohurd_kfreebsd_thread_native_id
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
hurd_kfreebsd_thread_native_id

Gbp-Pq: Name hurd_kfreebsd_thread_native_id.diff

3 months agosysconfigdata-name
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
sysconfigdata-name

Gbp-Pq: Name sysconfigdata-name.diff

3 months agoUse aligned access for _sha3 module on ARM.
Dave Jones [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
Use aligned access for _sha3 module on ARM.

Gbp-Pq: Name arm-alignment.diff

3 months agoargparse-no-shutil
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
argparse-no-shutil

Gbp-Pq: Name argparse-no-shutil.diff

3 months agobuild-math-object
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
build-math-object

Gbp-Pq: Name build-math-object.diff

3 months agoAdd the option to build Texinfo-format documentation.
Benjamin Moody [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
Add the option to build Texinfo-format documentation.

Bug-Debian: https://bugs.debian.org/881959
Last-Update: 2017-11-27

Gbp-Pq: Name doc-build-texinfo.diff

3 months agolocal-doc-references
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
local-doc-references

Gbp-Pq: Name local-doc-references.diff

3 months agopydoc-use-pager
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
pydoc-use-pager

# DP: pydoc: use the pager command if available.

# DP: pydoc: use the pager command if available.

Gbp-Pq: Name pydoc-use-pager.diff

3 months agoreproducible-buildinfo
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
reproducible-buildinfo

# DP: Build getbuildinfo.o with DATE/TIME values when defined

# DP: Build getbuildinfo.o with DATE/TIME values when defined

Gbp-Pq: Name reproducible-buildinfo.diff

3 months agomangle-fstack-protector
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
mangle-fstack-protector

# DP: When using GCC versions older than 4.9, automagically mangle
# DP: -fstack-protector-strong to -fstack-protector

# DP: When using GCC versions older than 4.9, automagically mangle
# DP: -fstack-protector-strong to -fstack-protector

Gbp-Pq: Name mangle-fstack-protector.diff

3 months agoensurepip-disabled
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
ensurepip-disabled

# DP: Disable ensurepip for the system installation, only enable it for virtual environments.

# DP: Disable ensurepip for the system installation, only enable it for virtual environments.

Gbp-Pq: Name ensurepip-disabled.diff

3 months agoensurepip-wheels
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
ensurepip-wheels

Gbp-Pq: Name ensurepip-wheels.diff

3 months agodisable-some-tests
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
disable-some-tests

# DP: Disable some failing tests we are not interested in

# DP: Disable some failing tests we are not interested in

Gbp-Pq: Name disable-some-tests.diff

3 months agotempfile-minimal
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
tempfile-minimal

# DP: Avoid shutil import when it is not available.

# DP: Avoid shutil import when it is not available.

Gbp-Pq: Name tempfile-minimal.diff

3 months agomultiarch-extname
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
multiarch-extname

# DP: Make sure to rename extensions to a tag including the MULTIARCH name

# DP: Make sure to rename extensions to a tag including the MULTIARCH name

this patch can be dropped for python3.5 final, if the upstream chage is kept.

Gbp-Pq: Name multiarch-extname.diff

3 months agotest-no-random-order
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
test-no-random-order

# DP: Don't run the test suite in random order.

# DP: Don't run the test suite in random order.

Gbp-Pq: Name test-no-random-order.diff

3 months agoext-no-libpython-link
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
ext-no-libpython-link

# DP: Don't link extensions with the shared libpython library.

# DP: Don't link extensions with the shared libpython library.

Gbp-Pq: Name ext-no-libpython-link.diff

3 months agolib2to3-no-pickled-grammar
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
lib2to3-no-pickled-grammar

Gbp-Pq: Name lib2to3-no-pickled-grammar.diff

3 months agomultiarch
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
multiarch

Gbp-Pq: Name multiarch.diff

3 months agoctypes-arm
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
ctypes-arm

Gbp-Pq: Name ctypes-arm.diff

3 months agolib-argparse
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
lib-argparse

# DP: argparse.py: Make the gettext import conditional

# DP: argparse.py: Make the gettext import conditional

Gbp-Pq: Name lib-argparse.diff

3 months agodisable-sem-check
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
disable-sem-check

# DP: Assume working semaphores, don't rely on running kernel for the check.

# DP: Assume working semaphores, don't rely on running kernel for the check.

Gbp-Pq: Name disable-sem-check.diff

3 months agolangpack-gettext
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
langpack-gettext

# DP: Description: support alternative gettext tree in
# DP: /usr/share/locale-langpack; if a file is present in both trees,
# DP: prefer the newer one
# DP: Upstream status: Ubuntu-Specific

# DP: Description: support alternative gettext tree in
# DP: /usr/share/locale-langpack; if a file is present in both trees,
# DP: prefer the newer one
# DP: Upstream status: Ubuntu-Specific

Gbp-Pq: Name langpack-gettext.diff

3 months agoprofiled-build
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
profiled-build

# DP: Ignore errors in the profile task.

# DP: Ignore errors in the profile task.

Gbp-Pq: Name profiled-build.diff

3 months agobdist-wininst-notfound
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
bdist-wininst-notfound

# DP: suggest installation of the pythonX.Y-dev package, if bdist_wininst
# DP: cannot find the wininst-* files.

# DP: suggest installation of the pythonX.Y-dev package, if bdist_wininst
# DP: cannot find the wininst-* files.

Gbp-Pq: Name bdist-wininst-notfound.diff

3 months agosetup-modules
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
setup-modules

Gbp-Pq: Name setup-modules.diff

3 months agolink-opt
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
link-opt

# DP: Call the linker with -O1 -Bsymbolic-functions

# DP: Call the linker with -O1 -Bsymbolic-functions

Gbp-Pq: Name link-opt.diff

3 months agogdbm-import
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
gdbm-import

# DP: suggest installation of python3-gdbm package on failing _gdbm import

# DP: suggest installation of python3-gdbm package on failing _gdbm import

Gbp-Pq: Name gdbm-import.diff

3 months agotkinter-import
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
tkinter-import

# DP: suggest installation of python-tk package on failing _tkinter import

# DP: suggest installation of python-tk package on failing _tkinter import

Gbp-Pq: Name tkinter-import.diff

3 months agodistutils-sysconfig-2
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
distutils-sysconfig-2

Gbp-Pq: Name distutils-sysconfig-2.diff

3 months agodistutils-sysconfig
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
distutils-sysconfig

# DP: Get CONFIGURE_CFLAGS, CONFIGURE_CPPFLAGS, CONFIGURE_LDFLAGS from
# DP: the python build, when CFLAGS, CPPFLAGS, LDSHARED) are not set
# DP: in the environment.

# DP: Get CONFIGURE_CFLAGS, CONFIGURE_CPPFLAGS, CONFIGURE_LDFLAGS from
# DP: the python build, when CFLAGS, CPPFLAGS, LDSHARED) are not set
# DP: in the environment.

Gbp-Pq: Name distutils-sysconfig.diff

3 months agodistutils-link
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
distutils-link

# DP: Don't add standard library dirs to library_dirs and runtime_library_dirs.

# DP: Don't add standard library dirs to library_dirs and runtime_library_dirs.

Gbp-Pq: Name distutils-link.diff

3 months agolocale-module
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
locale-module

# DP:   * Lib/locale.py:
# DP:     - Don't map 'utf8', 'utf-8' to 'utf', which is not a known encoding
# DP:       for glibc.

# DP:   * Lib/locale.py:
# DP:     - Don't map 'utf8', 'utf-8' to 'utf', which is not a known encoding
# DP:       for glibc.

Gbp-Pq: Name locale-module.diff

3 months agodistutils-install-layout
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
distutils-install-layout

# DP: distutils: Add an option --install-layout=deb, which
# DP: - installs into $prefix/dist-packages instead of $prefix/site-packages.
# DP: - doesn't encode the python version into the egg name.

# DP: distutils: Add an option --install-layout=deb, which
# DP: - installs into $prefix/dist-packages instead of $prefix/site-packages.
# DP: - doesn't encode the python version into the egg name.

Gbp-Pq: Name distutils-install-layout.diff

3 months agodeb-locations
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
deb-locations

# DP: adjust locations of directories to debian policy

# DP: adjust locations of directories to debian policy

Gbp-Pq: Name deb-locations.diff

3 months agodeb-setup
Matthias Klose [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
deb-setup

# DP: Don't include /usr/local/include and /usr/local/lib as gcc search paths

# DP: Don't include /usr/local/include and /usr/local/lib as gcc search paths

Gbp-Pq: Name deb-setup.diff

3 months agopython3.9 (3.9.2-1+rpi1+deb11u4) bullseye-staging; urgency=medium
Raspbian forward porter [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
python3.9 (3.9.2-1+rpi1+deb11u4) bullseye-staging; urgency=medium

  [changes brought forward from 3.9.0~b5-2+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Thu, 30 Jul 2020 10:10:07 +0000]
  * Disable testsuite (test_concurrent_futures seems to hang)

[dgit import unpatched python3.9 3.9.2-1+rpi1+deb11u4]

3 months agoImport python3.9_3.9.2-1+rpi1+deb11u4.debian.tar.xz
Raspbian forward porter [Sat, 24 Jan 2026 09:41:14 +0000 (09:41 +0000)]
Import python3.9_3.9.2-1+rpi1+deb11u4.debian.tar.xz

[dgit import tarball python3.9 3.9.2-1+rpi1+deb11u4 python3.9_3.9.2-1+rpi1+deb11u4.debian.tar.xz]

5 years agoImport python3.9_3.9.2.orig.tar.xz
Matthias Klose [Sun, 28 Feb 2021 17:03:44 +0000 (18:03 +0100)]
Import python3.9_3.9.2.orig.tar.xz

[dgit import orig python3.9_3.9.2.orig.tar.xz]